/**
 * Created by wdj on 15/11/12.
 */

// 核心功能
(function(hybrid){

    /**
     * 设置 隐藏/显示 系统导航栏
     * @param {Boolean} hide 是否隐藏
     * @param {Function} [callback]
     */
    hybrid.setNavigationBarHide = function(hide, callback){
        hybrid.callAction('Core/setNavigationBarHide', {hide:hide}, function(result){
            typeof callback === 'function' && callback(result.status, result.data);
        });
    };

    /**
     * 设置主题颜色
     * @param {String} color 前景色
     * @param {String} primaryColor 背景色
     * @param {Boolean} [lightStatusBar] 是否高亮状态栏
     * @param {Function} [callback] 设置完成后回调函数
     */
    hybrid.setTheme = function(color, primaryColor, lightStatusBar, callback){
        hybrid.callAction('Core/setTheme',{
            color: color,
            primaryColor: primaryColor,
            lightStatusBar: !!lightStatusBar
        }, function(result){
            typeof callback === 'function' && callback(result.status, result.data);
        });
    };

    /**
     * 新窗口打开一个网页
     * @param {*} options
     * @param {Function} [callback]
     */
    hybrid.openWindow = function(options, callback){
        var url;
        if(typeof options === 'string'){
            url = options;
            options = {};
        }
        options = hybrid.utils.extend({
            url: url,
            isFullScreen: false,
            showMenu: true
        }, options);
        hybrid.callAction('Core/openWindow', options, function (result) {
            typeof callback === 'function' && callback(result.status, result.data);
        });
    };

    /**
     * 使用 IOS UIApplication openURL 打开一个URL
     * @param {String} url
     * @param {Function} [callback]
     */
    hybrid.openURL = function(url, callback){
        hybrid.callAction('Core/openURL', {url: url}, function (result) {
            typeof callback === 'function' && callback(result.status, result.data);
        });
    };

})(Hybrid);

/**
 * 核心UI
 */
(function(hybrid){

    /**
     * 显示 toast
     * @param {*} options
     * @param {Function} [callback]
     */
    hybrid.showToast = function(options, callback){
        var msg = "";
        if(typeof msg === 'string'){
            msg = options;
        }
        options = hybrid.utils.extend({
             message: msg
            ,duration: 1.5
            ,delay: 0.0
            ,radius: 0.1
            //,color: '#FFFFFF'
            //,bgColor: '#000000'
            //,maxWidth: 100
            //,maxLine: 100
            //,marginBottom: 0
        }, options);

        if(options.radius && options.radius === 0){
            options.radius = 0.001;
        }
        hybrid.callAction('CoreUI/showToast',options, function(result){
            typeof callback === 'function' && callback(result.status, result.data);
        });
    };
    /**
     * 显示 toast
     * @param {String} message 消息内容
     * @param {Number} [duration] 显示时间
     */
    hybrid.makeToast = function(message, duration){
        hybrid.showToast({
            duration: duration || 1.5,
            message: message,
            radius: 0.000001
        });
    };

    /**
     * @param {*} options 消息内容
     * @param {Function} [callback] 回调函数
     */
    hybrid.showIndicator = function(options, callback){
        var message = "";
        if(typeof options === "string"){
            message = options;
        }
        options = hybrid.utils.extend({
            text: message
        }, options);

        hybrid.callAction("CoreUI/showIndicator",options, function(result){
            typeof callback === 'function' && callback(result.status, result.data);
        });
    };

    /**
     * hideIndicator
     * @param {Function} [callback]
     */
    hybrid.hideIndicator = function(callback){
        hybrid.callAction("CoreUI/hideIndicator",{},function(result){
            typeof callback === 'function' && callback(result.status, result.data);
        });
    };

})(Hybrid || {});